我所知道报表之POI创建Excel、单元格填充数据、设置样式、绘制图形 您所在的位置:网站首页 poi 设置单元格样式 我所知道报表之POI创建Excel、单元格填充数据、设置样式、绘制图形

我所知道报表之POI创建Excel、单元格填充数据、设置样式、绘制图形

#我所知道报表之POI创建Excel、单元格填充数据、设置样式、绘制图形| 来源: 网络整理| 查看: 265

一、创建Excel单元格

我们如何使用代码的方式,代替我们平常新建的excel文档?

1.首先按照我们的需要选择POI的结构

2.使用POI提供的API进行创建即可

//测试创建excel文件 public static void main(String[] args) throws Exception { //1.创建workbook工作簿 Workbook wb = new XSSFWorkbook(); //2.创建表单Sheet Sheet sheet = wb.createSheet("test"); //3.文件流 FileOutputStream fos = new FileOutputStream("E:\\test.xlsx"); //4.写入文件 wb.write(fos); fos.close(); }

这时我们允许main 方法,找到excel文档查看我们刚刚进行的操作

二、单元格填充数据

如果将数据写入到单元格中呢?

主要分几步:创建工作簿、创建表单Sheet、创建row、创建单元格cell

//测试创建单元格 public static void main(String[] args) throws Exception { //1.创建workbook工作簿 Workbook wb = new XSSFWorkbook(); //2.创建表单Sheet Sheet sheet = wb.createSheet("test"); //3.创建行对象,从0开始 Row row = sheet.createRow(3); //4.创建单元格,从0开始 Cell cell = row.createCell(0); //5.单元格写入数据 cell.setCellValue("单元格01"); //6.文件流 FileOutputStream fos = new FileOutputStream("E:\\test.xlsx"); //7.写入文件 wb.write(fos); fos.close(); }

这时我们允许main 方法,找到excel文档查看我们刚刚进行的操作

三、单元格的样式

在excel文档中,我们可以设置字体、大小、单元格的宽度高度、居中显示、合并单元格等样式的操作,那么在poi中我们如何进行呢?

//测试创建单元格 public static void main(String[] args) throws Exception { //省略其他关键性代码...... //5.单元格写入数据 cell.setCellValue("传智播客"); //6.创建单元格样式对象 CellStyle cellStyle = wb.createCellStyle(); //设置边框 cellStyle.setBorderBottom(BorderStyle.DASH_DOT);//下边框 cellStyle.setBorderTop(BorderStyle.HAIR);//上边框 //设置字体 Font font = wb.createFont();//创建字体对象 font.setFontName("华文行楷");//设置字体 font.setFontHeightInPoints((short)28);//设置字号 cellStyle.setFont(font); //设置居中显示 cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中 cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 //设置单元格样式 cell.setCellStyle(cellStyle); //合并单元格 CellRangeAddress region = new CellRangeAddress(0, 3, 0, 2); sheet.addMergedRegion(region); }四、绘制图形

在excel中,我们有时候会插入一些图片,那么在poi中会怎么做呢?

1.首先我们需要将需要放入的图片转为二进制数组

2.excel会在内存中统一集中管理图片,所以我们向POI内存中添加一张图片

3.向POI内存添加图片时,会返回该图片的下标,方便使用管理需要操作的图片

4.通过绘制图片工具类进行绘制,需要先获取一个绘图对象开始绘画

5.通过图片工具类,创建瞄点设置图片的位置坐标

6.使用绘图对象进行操作图片的绘画

//绘制图形 public static void main(String[] args) throws Exception { //1.创建workbook工作簿 Workbook wb = new XSSFWorkbook(); //2.创建表单Sheet Sheet sheet = wb.createSheet("test"); //读取图片流 FileInputStream stream=new FileInputStream("e:\\logo.jpg"); byte[] bytes= IOUtils.toByteArray(stream); //读取图片到二进制数组 stream.read(bytes); //向Excel添加一张图片,并返回该图片在Excel中的图片集合中的下标 int pictureIdx = wb.addPicture(bytes,Workbook.PICTURE_TYPE_JPEG); //绘图工具类 CreationHelper helper = wb.getCreationHelper(); //创建一个绘图对象 Drawing patriarch = sheet.createDrawingPatriarch(); //创建锚点,设置图片坐标 ClientAnchor anchor = helper.createClientAnchor(); anchor.setCol1(0);//从0开始 anchor.setRow1(0);//从0开始 //创建图片 Picture picture = patriarch.createPicture(anchor, pictureIdx); picture.resize(); //6.文件流 FileOutputStream fos = new FileOutputStream("E:\\test.xlsx"); //7.写入文件 wb.write(fos); fos.close(); } 参考资料

黑马程序员:基于SaaS平台的iHRM刷脸登录实战开发(报表相关视频)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有